【簡単】AWS Systems Manager Session Manager での実行ログをS3に吐き出してみた
テクニカルサポートチームの丸屋 正志(Maruya Masashi)です。
そもそも AWS Systems Manager Session Manager(SSM) とは?!
セッションマネージャーは、対話型のワンクリックブラウザーベースのシェルまたは、 AWS CLI を介して Amazon EC2 インスタンスを管理出来る、完全に管理された AWS System Manager の機能です。セッションマネージャーは、インバウンドポートを開いたり、踏み台ホストを維持したり、SSHキーを管理したりすることなく、安全で監査可能なインスタンス管理を提供してくれます。
引用元 : AWS Systems Manager Session Manager
IAM ロール編
ここでは、EC2にアタッチする際のロールを作成していきます。 なお、ポリシー(AmazonS3FullAccess)を利用していますが、許可したいサービスだけに絞っていただいても構いません。
IAM ロールコンソールにアクセスし、右上の【ロールを作成】を選択します。
ステップ 1 にて
下記を選択の上、【次のステップ : アクセス権限】を選択します。
- 信頼されたエンティティの種類を選択 : 【AWS サービス】
- ユースケースの選択 : 【EC2】
ステップ 2 にて
下記2種類のポリシーを選択してアタッチします。
- AmazonSSMManagedInstanceCore
- AmazonS3FullAccess
ステップ 3 にて
タグなどは、任意となっております。
ステップ 4 にて
ロール名を任意の名前して頂いて、アタッチされているポリシーが合っているかを確認します。
- ロール名 : 【EC2-SSM】
EC2 インスタンス編
『IAM ロール編』で作成しましたロール名を、この章で使用致します。
EC2 インスタンスコンソールにアクセスし、右上の【インスタンスを起動】を選択します。
『ステップ 3: インスタンスの詳細の設定』のIAMロール部分だけは選択していただき、他は任意で構いません。
- IAM ロール : 【EC2-SSM】
System Manager編
ここでは、ログの出力場所を指定します。
AWS System Manager セッションマネージャーコンソールにアクセスし、【設定】タブを選択後に【編集】を選択します。
編集画面に移りましたら、下にスクロールし『S3 Logging』の所で【Enable】にチェックを入れます。
- Choose S3 bucket : プルダウンメニューから、出力したいS3バケット名を選択
実際に接続してみる
セッションの開始コンソールにアクセスし、ターゲットのインスタンスを選択し、【セッションを開始する】を選択します。
開始しますと、別タブが開き下記の様に表示されます。 (右上の【終了】もしくは、exit→exitでセッションを終了するとS3に書き出されます)
S3 編
バケット内のを確認してみると...実際にログが書き出されているのが確認出来ます!